From 3305137ff3e6cfadc13aa160ef29ef0620112be1 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Tue, 5 Mar 2002 15:30:52 +0000 Subject: [PATCH] Don't use this same functions as idle callbacks and directly, to avoid Tue Mar 5 10:29:09 2002 Owen Taylor * gtk/gtktreeview.c (do_presize_handler) gtk/gtktreeview.c (do_validate_rows): Don't use this same functions as idle callbacks and directly, to avoid threading deadlocks. (#72392, Scott Guilbeaux) * gtk/gtktable.c (gtk_table_size_request_init): Fix row/column confusion from recent patch. (#73505, Vitaly Tishkov.) --- ChangeLog | 11 +++++++++++ ChangeLog.pre-2-0 | 11 +++++++++++ ChangeLog.pre-2-10 | 11 +++++++++++ ChangeLog.pre-2-2 | 11 +++++++++++ ChangeLog.pre-2-4 | 11 +++++++++++ ChangeLog.pre-2-6 | 11 +++++++++++ ChangeLog.pre-2-8 | 11 +++++++++++ gtk/gtktable.c | 2 +- gtk/gtktreeview.c | 36 +++++++++++++++++++++++++----------- 9 files changed, 103 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8003793a65..7c1d983880 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 8003793a65..7c1d983880 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,14 @@ +Tue Mar 5 10:29:09 2002 Owen Taylor + + * gtk/gtktreeview.c (do_presize_handler) + gtk/gtktreeview.c (do_validate_rows): Don't use this + same functions as idle callbacks and directly, to avoid + threading deadlocks. (#72392, Scott Guilbeaux) + + * gtk/gtktable.c (gtk_table_size_request_init): Fix + row/column confusion from recent patch. (#73505, + Vitaly Tishkov.) + 2002-03-04 Matthias Clasen * docs/tutorial/gtk-tut.sgml: Make color selection and selection diff --git a/gtk/gtktable.c b/gtk/gtktable.c index d94626357b..1709e500ec 100644 --- a/gtk/gtktable.c +++ b/gtk/gtktable.c @@ -953,7 +953,7 @@ gtk_table_size_request_init (GtkTable *table) for (row = 0; row < table->nrows; row++) { table->rows[row].requisition = 0; - table->cols[row].expand = FALSE; + table->rows[row].expand = FALSE; } for (col = 0; col < table->ncols; col++) { diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 91c1bd73a6..d935d1c931 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -3893,7 +3893,7 @@ validate_visible_area (GtkTreeView *tree_view) */ static gboolean -validate_rows_handler (GtkTreeView *tree_view) +do_validate_rows (GtkTreeView *tree_view) { GtkRBTree *tree = NULL; GtkRBNode *node = NULL; @@ -3904,15 +3904,11 @@ validate_rows_handler (GtkTreeView *tree_view) gint i = 0; g_assert (tree_view); - GDK_THREADS_ENTER (); - if (tree_view->priv->tree == NULL) { tree_view->priv->validate_rows_timer = 0; - GDK_THREADS_LEAVE (); return FALSE; } - do { @@ -3991,18 +3987,26 @@ validate_rows_handler (GtkTreeView *tree_view) if (! retval) tree_view->priv->validate_rows_timer = 0; - GDK_THREADS_LEAVE (); - return retval; } static gboolean -presize_handler_callback (gpointer data) +validate_rows_handler (GtkTreeView *tree_view) { - GtkTreeView *tree_view = GTK_TREE_VIEW (data); + gboolean retval; GDK_THREADS_ENTER (); + retval = do_validate_rows (tree_view); + + GDK_THREADS_LEAVE (); + + return retval; +} + +static gboolean +do_presize_handler (GtkTreeView *tree_view) +{ if (tree_view->priv->mark_rows_col_dirty) { if (tree_view->priv->tree) @@ -4012,6 +4016,16 @@ presize_handler_callback (gpointer data) validate_visible_area (tree_view); tree_view->priv->presize_handler_timer = 0; + return FALSE; +} + +static gboolean +presize_handler_callback (gpointer data) +{ + GDK_THREADS_ENTER (); + + do_presize_handler (GTK_TREE_VIEW (data)); + GDK_THREADS_LEAVE (); return FALSE; @@ -7655,8 +7669,8 @@ gtk_tree_view_column_autosize (GtkTreeView *tree_view, _gtk_tree_view_column_cell_set_dirty (column, FALSE); - presize_handler_callback (tree_view); - while (validate_rows_handler (tree_view)); + do_presize_handler (tree_view); + while (do_validate_rows (tree_view)); gtk_widget_queue_resize (GTK_WIDGET (tree_view)); } -- 2.30.2